package com.abe.abetest.utils;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.Locale;

public class CommonUtils {
    public static void log(String msg) {
        System.out.println(msg);
    }

    public static void wf(String format, Object... objects) {
        log(String.format(Locale.CHINA, format, objects));
    }

    /**
     * 判断该对象是否
     *
     * @param obj obj
     * @return ture表示所有属性为null 返回false表示不是所有属性都是null
     */
    public static boolean isAllFieldNull(Object obj) {
        //得到类对象
        Class stuCla = obj.getClass();
        //得到属性集合
        Field[] fs = stuCla.getDeclaredFields();
        boolean flag = true;
        CommonUtils.log("flag");
        //遍历属性
        try {
            for (Field f : fs) {
                //设置属性是可以访问的(私有的也可以)
                f.setAccessible(true);
                CommonUtils.wf("FieldName:%s  %s", Modifier.toString(f.getModifiers()), f.getName());
                //排除私有属性和时间日期属性
                if (f.getName().contains("DateTime")
                        || Modifier.toString(f.getModifiers()).contains("private")
                        || Modifier.toString(f.getModifiers()).contains("transient")
                        || Modifier.toString(f.getModifiers()).contains("static")
                        || Modifier.toString(f.getModifiers()).contains("final")) {
                    continue;
                }
                //得到此属性的值
                Object val = f.get(obj);
                //只要有1个属性不为空,那么就不是所有的属性值都为空
                if (val != null && !val.equals("")) {
                    CommonUtils.wf("NullValue:%s  %s", Modifier.toString(f.getModifiers()), f.getName());
                    flag = false;
                    break;
                }
            }
        } catch (IllegalAccessException e) {
            e.printStackTrace();
            CommonUtils.wf("ex:%s", e.getMessage());
        }
        return flag;
    }
}